package org.beyondhc.lessons.observer.genericwithonearg;

/**
 * 
 * Type-safe observer.
 * 
 * @author Jaana Kulmala
 * 
 * @param <S>
 *            Subject to be observed
 * @param <A>
 *            Argument/change to be observed
 */
public interface Observer<S extends Observable<A>, A> {
    /**
     * Notification telling that the observable was updated
     * 
     * @param observable
     * @param arg
     *            , change that was made
     */
    void update(S observable, A arg);
}
